using System.Collections.Generic;

namespace ColorBox4Sitecore.Colorbox
{
    public class Colorbox
    {
        #region Properties
        public string SelectorCssClass { get; set; }

        #region Effects
        public ColorboxTransition Transition { get; set; }
        public int Speed { get; set; }
        public bool ScalePhotos { get; set; }
        public bool Scrolling { get; set; }
        #endregion

        #region Content
        public string Href { get; set; }
        public string Title { get; set; }
        public string Rel { get; set; }
        public string Current { get; set; }
        public string Previous { get; set; }
        public string Next { get; set; }
        public string Close { get; set; }
        public string XhrError { get; set; }
        public string ImgError { get; set; }
        #endregion

        #region Apparence
        public int Opacity { get; set; }
        public bool Open { get; set; }
        public bool ReturnFocus { get; set; }
        public bool FastIframe { get; set; }
        public bool Preloading { get; set; }
        public bool OverlayClose { get; set; }
        public bool EscKey { get; set; }
        public bool ArrowKey { get; set; }
        public bool Loop { get; set; }
        public bool Data { get; set; }
        #endregion

        #region Content Type
        public bool Iframe { get; set; }
        public bool Inline { get; set; }
        public string Html { get; set; }
        public bool Photo { get; set; }
        #endregion

        #region Dimensions
        public int? Width { get; set; }
        public ColorboxUnit WidthUnit { get; set; }

        public int? Height { get; set; }
        public ColorboxUnit HeightUnit { get; set; }

        public int? InnerWidth { get; set; }
        public ColorboxUnit InnerWidthUnit { get; set; }

        public int? InnerHeight { get; set; }
        public ColorboxUnit InnerHeightUnit { get; set; }

        public int? InitialWidth { get; set; }
        public ColorboxUnit InitialWidthUnit { get; set; }

        public int? InitialHeight { get; set; }
        public ColorboxUnit InitialHeightUnit { get; set; }

        public int? MaxWidth { get; set; }
        public ColorboxUnit MaxWidthUnit { get; set; }

        public int? MaxHeight { get; set; }
        public ColorboxUnit MaxHeightUnit { get; set; }
        #endregion

        #region SlideShow
        public bool SlideshowEnable { get; set; }
        public int SlideshowSpeed { get; set; }
        public bool SlideshowAuto { get; set; }
        public string SlideshowStartText { get; set; }
        public string SlideshowEndText { get; set; }

        public List<KeyValuePair<string, string>> SlideshowPictures { get; set; }
        #endregion

        #region Positioning
        public bool Fixed { get; set; }
        public int? Top { get; set; }
        public ColorboxUnit TopUnit { get; set; }

        public int? Bottom { get; set; }
        public ColorboxUnit BottomUnit { get; set; }

        public int? Left { get; set; }
        public ColorboxUnit LeftUnit { get; set; }

        public int? Right { get; set; }
        public ColorboxUnit RightUnit { get; set; }
        #endregion

        #region Advanced Properties

        public string AdditionalProperties { get; set; }

        #endregion 
        #endregion

        public Colorbox()
        {
            SelectorCssClass = string.Empty;

            Transition = ColorboxDefaultValues.Transition;
            Speed = ColorboxDefaultValues.Speed;
            ScalePhotos = ColorboxDefaultValues.ScalePhotos;
            Scrolling = ColorboxDefaultValues.Scrolling;

            Href = ColorboxDefaultValues.Href;
            Title = ColorboxDefaultValues.Title;
            Rel = ColorboxDefaultValues.Rel;
            Current = ColorboxDefaultValues.Current;
            Previous = ColorboxDefaultValues.Previous;
            Next = ColorboxDefaultValues.Next;
            Close = ColorboxDefaultValues.Close;
            XhrError = ColorboxDefaultValues.XhrError;
            ImgError = ColorboxDefaultValues.ImgError;

            Opacity = ColorboxDefaultValues.Opacity;
            Open = ColorboxDefaultValues.Open;
            ReturnFocus = ColorboxDefaultValues.ReturnFocus;
            FastIframe = ColorboxDefaultValues.FastIframe;
            Preloading = ColorboxDefaultValues.Preloading;
            OverlayClose = ColorboxDefaultValues.OverlayClose;
            EscKey = ColorboxDefaultValues.EscKey;
            ArrowKey = ColorboxDefaultValues.ArrowKey;
            Loop = ColorboxDefaultValues.Loop;
            Data = ColorboxDefaultValues.Data;

            Iframe = ColorboxDefaultValues.Iframe;
            Inline = ColorboxDefaultValues.Inline;
            Html = ColorboxDefaultValues.Html;
            Photo = ColorboxDefaultValues.Photo;

            Width = ColorboxDefaultValues.Width;
            WidthUnit = ColorboxDefaultValues.WidthUnit;
            Height = ColorboxDefaultValues.Height;
            HeightUnit = ColorboxDefaultValues.HeightUnit;
            InnerWidth = ColorboxDefaultValues.InnerWidth;
            InnerWidthUnit = ColorboxDefaultValues.InnerWidthUnit;
            InnerHeight = ColorboxDefaultValues.InnerHeight;
            InnerHeightUnit = ColorboxDefaultValues.InnerHeightUnit;
            InitialWidth = ColorboxDefaultValues.InitialWidth;
            InitialWidthUnit = ColorboxDefaultValues.InitialWidthUnit;
            InitialHeight = ColorboxDefaultValues.InitialHeight;
            InitialHeightUnit = ColorboxDefaultValues.InitialHeightUnit;
            MaxWidth = ColorboxDefaultValues.MaxWidth;
            MaxWidthUnit = ColorboxDefaultValues.MaxWidthUnit;
            MaxHeight = ColorboxDefaultValues.MaxHeight;
            MaxHeightUnit = ColorboxDefaultValues.MaxHeightUnit;

            SlideshowEnable = ColorboxDefaultValues.SlideshowEnable;
            SlideshowSpeed = ColorboxDefaultValues.SlideshowSpeed;
            SlideshowAuto = ColorboxDefaultValues.SlideshowAuto;
            SlideshowStartText = ColorboxDefaultValues.SlideshowStartText;
            SlideshowEndText = ColorboxDefaultValues.SlideshowEndText;

            Fixed = ColorboxDefaultValues.Fixed;
            Top = ColorboxDefaultValues.Top;
            TopUnit = ColorboxDefaultValues.TopUnit;
            Bottom = ColorboxDefaultValues.Bottom;
            BottomUnit = ColorboxDefaultValues.BottomUnit;
            Left = ColorboxDefaultValues.Left;
            LeftUnit = ColorboxDefaultValues.LeftUnit;
            Right = ColorboxDefaultValues.Right;
            RightUnit = ColorboxDefaultValues.RightUnit;

            SlideshowPictures = new List<KeyValuePair<string, string>>();

            AdditionalProperties = string.Empty;
        }
    }
}